<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
      // 回顾两个变量交换位置。
        // var fruit1 = "苹果";
        // var fruit2 = "橘子";
        // var table = "";
        // table = fruit1;
        // fruit1 = fruit2;
        // fruit2 = table;
        // console.log(fruit1);
        // console.log(fruit2);

        // 排序
        /*
        冒泡排序：就一组数组，按照一定的顺序(从小到大)进行排列。
        例子：[1, 5, 13, 2, 4]
        排序后：[1, 2, 4, 5, 13]
        原理：依次两两比较，大的放后面，一轮之后，最大值放到最后。
        冒泡：大的数据像泡泡一样，往上靠。

        第一趟比较之后，最大的值放在最后
        第二趟，只用比较前4个数。最大的数，放在最后。
        第三趟，只用比较前3个数。最大的数，房子最后
        。。。。
        排序完成。
        总结规律：每一趟，要进行若干次比较。
        双重for循环：外层循环一次，内层循环内层。
        索引号       趟数          比较次数 nei
          0           1               4
          1           2               3
          2           3               2 
          3           4               1
        规律： i + nei = 4
               0 + 4 = 4
               1 + 3 = 4
               2 + 2 = 4
               3 + 1 = 4

          4 就是数组的长度 减一
             i + nei =  arr.length -1;
                 nei =  arr.length -1 - i; 
       
        */
        var arr = [1, 5, 13, 2, 4];
        // var wai = 2; // 外层循环的次数
        // var nei = 3; // 内层循环的次数
        for (var i = 0; i < arr.length - 1; i++) {  // 外层控制趟
            for (j = 0; j < arr.length - 1 - i; j++) { // 内层控制交换的次数
                // 依次两两比较，较大的值放后面
                if (arr[j] > arr[j + 1]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        // 1, 2, 4, 5, 13
        console.log(arr);
    </script>
</body>
</html>